1. Field
Aspects of embodiments of the present invention relate to methods of transporting error correction codes in a symbol encoded transmission stream.
2. Description of Related Art
High-speed data transmission may be implemented using a serial data link (e.g., one bit at a time, such as with a fiber optic cable link). A data stream may be composed of a number of bit groups (e.g., 8-bit groups) in serialized order (“bytes”). DC balancing, such as with 8 b/10 b encoding, may be used to encode the data stream (“data bytes”) before transmitting (for example, 8-bit bytes may be converted to 10-bit symbols) so that the number of 0-bits (i.e., bits representing a binary value of ‘0’) being transmitted equals (or substantially equals, such as being no more than one or two off from) the number of 1-bits (i.e., bits representing a binary value of ‘1’) being transmitted, and with no single burst of either 0-bits or 1-bits (e.g., no more than five consecutive 0-bits or 1-bits). The encoded data stream is then decoded on the receiving side, such as with a corresponding 10 b/8 b decoding, to recover the original data stream. These techniques may help, for example, with DC balancing, clock recovery, and phase recovery, such as helping receiving devices determine the transmission rate of the transmitted encoded data.
Forward error correction (FEC) codes, such as hamming codes, reed-Solomon codes, or low-density parity-check (LDPC) codes, may be used in data transmissions to improve reliability of the communication by providing redundant bits or bytes (“parity bits” or “parity bytes”) for error checking and error correction. These parity bits or bytes accompany the data transmission (data bits or bytes) and allow the receiver to verify that the correct data was sent and may even allow the receiver the ability to correct a limited number of errors in the transmission. Hamming codes are relatively straightforward and efficient, but correct only a limited number of errors (e.g., a few bits). Reed-solomon and LDPC codes are more computationally intensive than hamming codes, but provide for significantly more errors to be detected or corrected (e.g., entire bytes).
Forward error correction may also be combined with DC balancing. For example, parity bits or bytes may be generated for a data stream (data bytes) for forward error correction, and the data plus parity bits or bytes encoded through DC balancing into symbols before being transmitted. The receiver then decodes the symbols and performs the error detection and correction using the decoded parity bits or bytes on the decoded data bits or bytes. However, this introduces a problem with errors introduced during the data transmission. For example, a corrupted symbol may be mapped to an invalid symbol or to a valid symbol representing a different byte, thus causing something as small as a one-bit error in transmission to result in multiple bit errors (e.g., an entire byte, which may include 8 separate bit errors) in the received data and parity. This may present problems for low-cost FEC algorithms such as hamming codes, or force the use of a more complex FEC algorithm (such as reed-solomon or LDPC) to provide the capability to recover from one or more byte errors, versus only a few bit errors, which increases encoder and decoder complexity.
The above information disclosed in this Background section is only for enhancement of understanding of the background of the invention and therefore it may contain information that does not form the prior art that is already known to a person of ordinary skill in the art.